package com.roy.sms.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 日期工具类，将日期格式化为字符串，将字符串转换为日期
 * 
 * @author rzpeng
 * 
 */
public class DateUtil {

	public static final String HHMMSS = "HH:mm:ss";
	public static final String YYYYMMDD = "yyyy-MM-dd";
	public static final String YYYYMMDDHHMM = "yyyy-MM-dd HH:mm";
	public static final String YYYYMMDDHHMMSS = "yyyy-MM-dd HH:mm:ss";

	/**
	 * 格式化日期为指定格式的字符串
	 * 
	 * @param date
	 * @param pattern
	 * @return
	 */
	public static String formatDate(Date date, String pattern) {
		SimpleDateFormat sdf = new SimpleDateFormat(pattern);
		return sdf.format(date);
	}

	/**
	 * 格式化日期为yyyy-MM-dd格式
	 * 
	 * @param date
	 * @return
	 */
	public static String formatDate(Date date) {
		return formatDate(date, YYYYMMDD);
	}

	/**
	 * 格式化日期为yyyy-MM-dd HH:mm格式
	 * 
	 * @param date
	 * @return
	 */
	public static String formatDateTime(Date date) {
		return formatDate(date, YYYYMMDDHHMM);
	}

	/**
	 * 格式化日期为yyyy-MM-dd HH:mm格式
	 * 
	 * @param date
	 * @return
	 */
	public static String formatTime(Date date) {
		return formatDate(date, HHMMSS);
	}

	/**
	 * 按给定的格式将字符串转换为日期
	 * 
	 * @param dateStr
	 * @param pattern
	 * @return
	 * @throws ParseException
	 */
	public static Date parse(String dateStr, String pattern)throws ParseException {
		SimpleDateFormat sdf = new SimpleDateFormat(pattern);
		return sdf.parse(dateStr);
	}

	/**
	 * 按yyyy-MM-dd的格式将字符串转换为日期
	 * 
	 * @param dateStr
	 * @return
	 * @throws ParseException 
	 */
	public static Date parse(String dateStr) throws ParseException {
		return parse(dateStr, YYYYMMDD);
	}

	/**
	 * 按yyyy-MM-dd HH:mm:ss的格式将字符串转换为日期
	 * 
	 * @param dateStr
	 * @return
	 * @throws ParseException 
	 */
	public static Date parseDateTime(String dateStr) throws ParseException {
		return parse(dateStr, YYYYMMDDHHMMSS);
	}

	/**
	 * 按yyyy-MM-dd HH:mm:ss的格式将字符串转换为日期
	 * 
	 * @param dateStr
	 * @return
	 * @throws ParseException 
	 */
	public static Date parseTime(String dateStr) throws ParseException {
		return parse(dateStr, HHMMSS);
	}
	
}
